package cn.edu.gzgs.config;

import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

import java.time.Duration;

/**
 * HTTP 客户端配置。
 *
 * <p>提供应用内通用的 {@link RestTemplate} Bean，统一连接与读取超时，
 * 以便在启动时或业务逻辑中进行稳定的 HTTP 调用。</p>
 *
 * @author Zyf
 */
@Configuration
public class HttpClientConfig {

    /**
     * 创建并配置 RestTemplate。
     *
     * 输入：
     *  - builder：Spring Boot 提供的 `RestTemplateBuilder`，用于链式配置。
     * 输出：
     *  - 返回配置好超时参数的 `RestTemplate` 实例。
     * 作用：
     *  - 提供统一、可复用的 HTTP 客户端，避免在各处重复创建与配置。
     */
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder
                .setConnectTimeout(Duration.ofSeconds(5))
                .setReadTimeout(Duration.ofSeconds(15))
                .build();
    }
}


